package com.niit.spark.sql.test

import org.apache.spark.sql.functions.avg
import org.apache.spark.sql.{DataFrame, SparkSession}

/**
 * Date:2025/5/16
 * Author：Ys
 * Description:
 */
object GroupFilterDepartment {

  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("GroupByDepartment").master("local[*]").getOrCreate()
    spark.sparkContext.setLogLevel("ERROR")
    val dataFrame: DataFrame = spark.read.option("header", "true").csv("input/sql/employees.csv")

    //按照部门分组，计算每个部门的平均工资
    //agg的作用：对分组后的数据进行聚合，可以使用聚合函数，也可以使用列名，列对象，列表达式。
    val avgSalary: DataFrame = dataFrame.groupBy("department").agg(avg("salary").as("avgSalary"))

    avgSalary.filter("avgSalary>8000").show()

    spark.stop()
  }

}
